package com.hello.system.service;

import java.util.List;
import com.hello.system.domain.RentalDevices;
import com.hello.system.domain.vo.RentalDeviceWithInventoryVo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 设备Service接口
 * 
 * @author hello
 * @date 2025-07-20
 */
public interface IRentalDevicesService extends IService<RentalDevices>
{
    /**
     * 查询设备
     * 
     * @param deviceId 设备主键
     * @return 设备
     */
    public RentalDevices selectRentalDevicesByDeviceId(Long deviceId);

    /**
     * 查询设备列表
     * 
     * @param rentalDevices 设备
     * @return 设备集合
     */
    public List<RentalDevices> selectRentalDevicesList(RentalDevices rentalDevices);

    /**
     * 查询设备列表（带库存信息）
     * 
     * @param rentalDevices 设备查询条件
     * @return 设备+库存信息集合
     */
    public List<RentalDeviceWithInventoryVo> selectRentalDevicesWithInventoryList(RentalDevices rentalDevices);

    /**
     * 查询设备详情（带库存信息）
     * 
     * @param deviceId 设备ID
     * @return 设备+库存信息
     */
    public RentalDeviceWithInventoryVo selectRentalDeviceWithInventoryByDeviceId(Long deviceId);

    /**
     * 新增设备
     * 
     * @param rentalDevices 设备
     * @return 结果
     */
    public int insertRentalDevices(RentalDevices rentalDevices);

    /**
     * 修改设备
     * 
     * @param rentalDevices 设备
     * @return 结果
     */
    public int updateRentalDevices(RentalDevices rentalDevices);

    /**
     * 批量删除设备
     * 
     * @param deviceIds 需要删除的设备主键集合
     * @return 结果
     */
    public int deleteRentalDevicesByDeviceIds(Long[] deviceIds);

    /**
     * 删除设备信息
     * 
     * @param deviceId 设备主键
     * @return 结果
     */
    public int deleteRentalDevicesByDeviceId(Long deviceId);
}
